package BloodTimeHybernateDO;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.Proxy;

import dao.api.DataObject;

/**
 * 
 * @author Armando G. Lozada N
 * 
 */
@Entity
@Table(name = "propiedadvampiro")
@Proxy(lazy = false)
@SequenceGenerator(name = "propiedadVampiro_sequence", sequenceName = "propiedadVampiro_sequence", allocationSize=1)

public class PropiedadVampiroDO implements DataObject {

	// -------------------------------
	// Identificador auto-incremental
	// -------------------------------

	private int id;

	// -------------------
	// Atributos de PropiedadVampiro
	// -------------------
	private String nombre;
	private int numEsclavos;
	private boolean habilitado;

	// ------------
	// Referencias
	// ------------

	private VampiroDO vampiroId;

	private PropiedadDO propiedadId;

	private CiudadDO ciudadId;

	// ------------------------------------------------------------------------

	//METODOS!!!
	public PropiedadVampiroDO(){
		//Empty 
	}

	@Override
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "propiedadVampiro_sequence")
	public int getId() {
		return id;
	}

	@Override
	public void setId(int id) {
		this.id = id;

	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void setNumEsclavos(int numEsclavos) {
		this.numEsclavos = numEsclavos;
	}

	public int getNumEsclavos() {
		return numEsclavos;
	}

	public void setHabilitado(boolean habilitado) {
		this.habilitado = habilitado;
	}

	public boolean isHabilitado() {
		return habilitado;
	}

	@ManyToOne
	public VampiroDO getVampiroId() {
		return vampiroId;
	}

	public void setVampiroId(VampiroDO vampiroId) {
		this.vampiroId = vampiroId;
	}

	@ManyToOne
	public PropiedadDO getPropiedadId() {
		return propiedadId;
	}

	public void setPropiedadId(PropiedadDO propiedadId) {
		this.propiedadId = propiedadId;
	}

	@ManyToOne
	public CiudadDO getCiudadId() {
		return ciudadId;
	}

	public void setCiudadId(CiudadDO ciudadId) {
		this.ciudadId = ciudadId;
	}
}
